package com.soyotec.algorithm.plugin;

import com.soyotec.algorithm.problem.Problem;
import com.soyotec.algorithm.solution.Solution;

import java.io.Serializable;
import java.util.List;

/**
 * 解决方案评估器
 * @param <S> 解决方案
 */
public interface SolutionListEvaluator<S extends Solution> extends Serializable {

    /**
     *  评估方法
     * @param var1 解决方案集合
     * @param var2 问题
     * @return 评估后的解决方案
     */
    List<S> evaluate(List<S> var1, Problem<S> var2);

    /**
     * 评估停止方法
     */
    void shutdown();
}

